The present invention relates to a method and/or architecture for configuring programmable logic devices generally and, more particularly, to a method and/or architecture for programming configuration bits of programmable logic devices.
A programmable logic device (PLD) provides an economical and efficient means for implementing predetermined Boolean logic functions in an integrated circuit. Such a device consists of, generally, an AND plane configured to generate predetermined product terms in response to a plurality of inputs, a group of fixed/programmable OR gates configured to generate a plurality of sum-of-product(SOP) terms in response to the product terms, and a number of logic elements (i.e., macrocells) configured to generate a desired output in response to the sum-of-products terms. The sum-of-products terms can also be generated using programmable NOR-NOR logic.
The arrangement and operation of components within the PLD are programmed by architecture configuration bits. The architecture configuration bits are set prior to normal operation of a PLD. The configuration bits can be stored in volatile memory (i.e., SRAM) or non-volatile memory (i.e., EEPROM/flash). The bits are set using an operation called xe2x80x9cprogrammingxe2x80x9d or xe2x80x9cconfigurationxe2x80x9d.
Conventional configuration memories organize the configuration bits in a single rectangular array. The array is programmed by loading appropriate values into a set of row and column address registers. Either a single central controller or an external programmer controls the configuration operations. The controller or external programmer must also keep track of all configuration bit counts.
The number of configuration bits can vary from one device to another, even within the same device family. Different numbers of configuration bits require different array geometries. Because the external programmer/controller must keep track of bit counts, programming different devices, even of the same family, requires complicated programming in the external controller/programmer.
A configuration memory and control architecture that is easy to scale and program for different devices would be desirable.
The present invention concerns an apparatus comprising one or more configuration blocks. The configuration blocks (i) may comprise a number of configuration elements and. (ii) may be configured to initiate reading or writing of the configuration elements in response to a control input.
The objects, features and advantages of the present invention include providing a method and/or architecture for programming configuration bits of programmable logic devices that may (i) provide full chip configuration, (ii) provide a fully scalable configuration architecture, (iii) speed up programming times, (iv) organize configuration elements in relatively small autonomous configuration blocks, (v) use global input lines, (vi) use PLD type blocks and/or embedded RAM blocks as configuration blocks, (iv) simplify programming, and/or (v) provide a programming scheme that may be independent of device type and family.